<!-- 获取短信验证码 -->
<template>
  <el-button
    :disabled="disabled"
    @click="getCode"
  >
    {{ str }}
  </el-button>
</template>
<script setup>
import NodeCode from '@/composables/CodeNode'

let nodeCode = null

// 监听倒计时数据
const str = ref('')
const disabled = ref(false)
const init = () => {
  /**
   * 倒计时
   * @param {String} queKey - 唯一标识, 如果存在, 在H5刷新或各端返回再进入时继续倒计时
   * @param {Number} seconds - 倒计时时长 默认60s
   * @return {Object}
   */
  nodeCode = new NodeCode('NodeCode')

  nodeCode.change((data) => {
    str.value = data.msg
    disabled.value = data.disabled
  })
}

onMounted(init)

onActivated(init)

// 发送验证码
const getCode = async () => {
  // 开启倒计时
  nodeCode.start()
}

onUnmounted(() => {
  // 销毁定时装置
  nodeCode.off()
})
onDeactivated(() => {
  // 销毁定时装置
  nodeCode.off()
})

</script>

<style scoped lang='scss'></style>
